近一个月,D-Link 过得真是跌宕起伏。先是被指路由器固件镜像暴露了用于加密专有固件二进制的密钥,现在一些路由器型号被指存在5个严重的 0day,可导致严重的网络攻陷后果。另外,一些设备已经到达“生命周期”期限,也就是说不会被修复。
研究员 Nick Starke 展示了如何解密内嵌在 D-Link 路由器中的专有固件镜像。固件是为硬件设备提供底层功能的代码,通常硬编码在只读内存中。企业加密设备固件镜像是为了阻止竞争对手和威胁行动者进行逆向,以及阻止客户(或恶意软件)通过定制化固件刷新设备。Starke 解释称,“制造商加密固件一般是为了阻止别人分析其中的二进制。同时,如果方法得当,加密固件镜像可阻止越权的经过修改的固件镜像被刷新。”如要解密,人们或者需要具有解密密钥或者需要掌握破解加密算法的方法。如果固件镜像确实被加密,那么岂会这么容易被解密?
Starke 最初分析时下载了最新版本的 D-Link 固件 (1.11B02) 并通过专用于提取并分析固件的简单工具 Binwalk进行分析,结果发现固件被加密。但从同一个D-Link 支持网站上下载更老旧版本“1.02B03”后发现了两个固件文档:以“…_uncrypted.bin”结尾的二进制说明它可能未被加密,而另外一个可能是被加密的。
在”DIR3040A1_FW102B03_uncrypted.bin”上运行 binwalk 后发现了一些有用信息:
以上信息说明该镜像中包含一个未加密的固件二进制,可供研究人员提取并分析存储的解密密钥。Starke 在博客文章中指出,“太好了,获得一个 uImage 标头还有一个文件系统。我们可以使用 binwalk -eM DIR3040A1_FW102B03_uncrypted.bin 提取。我看了文件系统后做的第一件事就是查找证书。”
进一步分析后证实了他的猜想,解密密钥和加密密钥都内嵌在二进制中。
除了密钥和证书文件外,还出现了一个名为 /bin/imgdecrypt 程序,它是用于解密加密镜像的一款解密工具。不过这款解密工具还附有一个说明。经过一系列步骤后,Starke搭建好用于解密最新固件版本的环境,之后针对加密固件镜像运行了 imgdecrypt 二进制并发现了密钥:C05FBF1936C99429CE2A0781F08D6AD8。
Starke 指出,“它不仅披露了解密密钥还将解密版本放在了/tmp/.firmware.orig 中。”也就是说逆向工程师能够开始分析本应加密的固件镜像了。他进一步说明,“越来越多的设备制造商转向解密固件,然而,多数始于未加密的固件镜像。这通常意味着肯定有一个未加密固件镜像且其中存储着密码或密钥。如果能找到最新的解密镜像,那么一般就能找到密码并解密后续的加密镜像。”想不到,研究人员能够从 D-Link 官网网站上从老旧的固件镜像着手分析出最新版本的解密密钥。这5个严重的0day 漏洞是由 ACE Team – Loginsoft 发现的,它们是反射型 XSS 攻击、缓冲溢出漏洞、获取管理员凭据、绕过认证、执行任意代码。攻击者如能访问路由器管理员页面,即使不直到管理员凭据也能执行以上攻击。CVE-2020-15892:栈缓冲溢出漏洞,存在于‘ssi’二进制中,可导致任意命令执行。影响固件版本 1.0.8 和1.10B04。
CVE-2020-15893:命令执行漏洞,存在于 UPnP 中,可通过构造 M-SEARCH 数据包执行。影响运行固件 2.06 和 2.06.B09_BETA(最新版)版本。
CVE-2020-15894:敏感信息泄露漏洞。被暴露的管理函数可允许越权访问敏感信息。影响运行固件版本2.06 和2.06.B09_BETA(最新版)。
CVE-2020-15895:跨站点脚本漏洞。因未转义的值导致设备配置页面上出现的反射型 XSS 漏洞。影响固件版本 2.06和2.06.B09_BETA(最新版)。
CVE-2020-15896:敏感信息暴露/认证绕过后门。被暴露的管理函数可允许越权访问敏感信息。影响D-Link DAP 1522设备 (Ax Hardware) 上的后续固件版本 1.41和1.42。
对于多数配置而言,攻击者需要出现在和路由器相同的网络上(如一个公开的 WiFi 热点或内部网络)访问路由器的 web 管理接口。如果用户启用了 D-Link 路由器 web 管理接口的远程访问权限,则远程攻击者只需向路由器的公开 IP 地址提出简单请求,则可绕过认证并接管设备和网络。遗憾的是,启用了远程管理的路由器并非少数。Shodan.io 搜索引擎显示,超过5.5万台设备具有远程可访问的 web 接口。值得注意的是,虽然其中很多 D-Link 设备或不易受影响,但仍然说明很多都启用了远程管理访问权限。
Loginsoft 发布了包含 PoC exploit 的安全公告,说明了滥用新发现漏洞易遭利用。值得注意的是,CVE-2020-15896 实际上早在2010年就曾被另外一名研究人员报告过,2011年也有研究员在 DIR-320和 DIR-615 revD 设备上发现了同样的漏洞。而后一个漏洞的多个变体至少出现在2009年。令人惊讶的是,路由器制造商多年来仍然为修复这些严重缺陷,导致甚至是现代设备也易遭攻击。
D-Link发布安全公告说明了所有易受攻击的固件版本和硬件设备。其中一些漏洞早在2019年2月9日即报告,而 Loginsoft 中的一些漏洞可追溯至2020年3月。不过根据NVD的说明,所有的这5个CVE在2020年7月22日才披露。DAP-1522 和 DIR-816L 型号已到达“生命周期”阶段,因此 Loginsoft 并未对这两个模型进行说明。运行固件版本 v1.42(及以下版本)和 v12.06.B09(及以下版本)的设备仍然易受攻击且无更新路径。运行易受攻击固件版本 v1.10B04 的 D-Link DAP-1520 型号路由器而言,该公司已发布“例外测试版补丁发布”固件版本 v1.10b04Beta02,用户可更新至该版本。因此,如果用户运行的设备无法更新,则会仍然易受攻击,除非购买新款设备。https://research.loginsoft.com/vulnerability/multiple-vulnerabilities-discovered-in-the-d-link-firmware-dir-816l/
https://www.bleepingcomputer.com/news/security/5-severe-d-link-router-vulnerabilities-disclosed-patch-now/https://www.bleepingcomputer.com/news/security/d-link-blunder-firmware-encryption-key-exposed-in-unencrypted-image/https://research.loginsoft.com/vulnerability/multiple-vulnerabilities-discovered-in-the-d-link-firmware-dir-816l/
题图:Pixabay License
本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的
产品线。
点个 “在看” ,加油鸭~